package com.itfenghuang.day11;

import java.io.*;

public class A02_字符流 {
    public static void main(String[] args) throws IOException {
        /*
            1.字符流写出数据
                步骤:1).创建字符输出流对象  FileWriter
                     2).写数据    writer  一次写一个字符,一次写一个字符数组,一次写一个
                                字符数组的一部分,一次写一个字符串
                     3).释放资源
            2.注意事项
                1).创建对象的时候
                        a.如果要追加数据的话,使用 public FileWriter(String fileName,
                                boolean append) 构造方法,append传true
                        b.如果文件不存在,会创建一个文件,如果父级文件夹不存在,
                          报错FileNoFoundException
                2).写数据
                        a.如果想要写数字到文字中,name将数字引起来"97"
            3.字符流读数据
                1).创建字符输入流  FileReader()
                2).读数据  read() 一次读一个字符,一次读一个字符数组,一次读一个数组的一部分
                3)释放资源
         */
//        字节流读写中文出现的乱码问题();
//        字符流写出数据();
//        字节流读写中文出现的乱码问题();
        FileReader fr = new FileReader("F:\\zuoye.day10-1\\dier\\dyer.txt");
        char[] xx=new char[1024];
        int i;
        while ((i=fr.read(xx))!=-1){
            System.out.println(new String(xx,0,i));
        }
        fr.close();
    }

    private static void 字符流写出数据() throws IOException {
        FileWriter fw = new FileWriter("F:\\zuoye.day10-1\\dier\\dyer.txt");
        fw.write(97);
        fw.write("阿西吧");
//        fw.close();
        fw.flush();
    }

    private static void 字节流读写中文出现的乱码问题() throws IOException {
        FileInputStream fis = new FileInputStream("F:\\zuoye.day10-1\\dier\\dyer.txt");
        int i;
        while ((i=fis.read())!=-1){
            System.out.println((char) i);
        }
        fis.close();
    }
}
